﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Csla.Server;
using Csla;
using Csla.Core;
using DataPortal = Csla.DataPortal;
using Utpl.Syllabus.Framework.Csla.Base;

namespace Utpl.Syllabus.Reconocimiento.BL
{
    /// <summary>
    /// Estereotipo: Command
    /// Responsabilidad: Comprobar que si un componente tiene configuracion asociada
    /// </summary>
    [Serializable]
    [ObjectFactory("Object=EquivalenciaCmd;Assembly=Utpl.Syllabus.Reconocimiento.BL")]
    public class EquivalenciaCmd : SyCommandBase<EquivalenciaCmd>
    {
        #region Business Methods

        /// <summary>
        /// Identificador de un Componente Educativo (coe)
        /// </summary>
        public int EquivalenciaId
        {
            get;
            set;
        }

        /// <summary>
        /// Resultado de la ejecución de la consulta
        /// </summary>
        internal bool _result;

        /// <summary>
        /// Resultado de la ejecución de la consulta
        /// </summary>
        public bool Result
        {
            get { return _result; }
        }

        #endregion

        #region Factory Methods

        /// <summary>
        /// Método que permite saber si un componente Educativo está o no siendo utilizado.
        /// </summary>
        /// <param name="eqvId">Identificador del Componente Educativo.</param>
        /// <returns>TRUE: Esta siendo usado</returns>
        public static bool Execute(int eqvId)
        {
            var cmd = new EquivalenciaCmd { EquivalenciaId = eqvId };
            cmd = DataPortal.Execute(cmd);
            return cmd.Result;
        }

        /// <summary>
        /// Constructor Privado. COn esto se controla que no se puedan crear instancias desde fuera.
        /// </summary>
        private EquivalenciaCmd() { }

        #endregion
    }

}
